
    EventObject.implement
    (
        {
            /**
             * @public
             * @type {Boolean}
             */
            cancelled: null
            
            /**
             * @public
             * @type {String}
             */
        ,   type: null
            
            /**
             * @public
             * @type {Object}
             */
        ,   target: null  
            
            /**
             * Cancel an events propagation.
             * @return {void}
             */
        ,   cancel: function () 
            {
                this.cancelled= true;
            }    
        }
    );
    
    /**
     * 
     * @param {String} type
     * @constructor
     * @throws {TypeError}
     */
    function EventObject (type) 
    {
        if (String.notEmpty(type)) 
        {
            this.type= type;
        }
        else 
        {
            throw new TypeError ('Non empty string expected');
        }
    };
